
package org.apache.solr.response.transform;

import org.apache.solr.common.SolrDocument;

/**
 * Return a field with a name that is different that what is indexed
 *
 * @since solr 4.0
 */
public class RenameFieldTransformer extends DocTransformer {

    final String from;
    final String to;
    final boolean copy;

    public RenameFieldTransformer(String from, String to, boolean copy) {
        this.from = from;
        this.to = to;
        this.copy = copy;
    }

    @Override
    public String getName() {
        return "Rename[" + from + ">>" + to + "]";
    }

    @Override
    public void transform(SolrDocument doc, int docid) {

        Object v = (copy) ? doc.get(from) : doc.remove(from);
        if(v != null) {
            doc.setField(to, v);
        }
    }
}
